import 'package:flutter/material.dart';
import 'package:flutter_house_manager/pages/House/HouseList.dart';
import 'package:flutter_house_manager/pages/Location/BuildingList.dart';
import 'package:flutter_house_manager/pages/Location/LocationList.dart';
import 'package:flutter_house_manager/pages/Location/RoomList.dart';
import 'package:flutter_house_manager/pages/NotFound/NotFound.dart';
import 'package:flutter_house_manager/pages/TabsPage/index.dart';

import '../pages/Login/index.dart';
import '../pages/NoticeDetail/index.dart';
import '../pages/Profile/index.dart';
import '../utils/TokenManager.dart';

Widget getRootWidget() {
  return MaterialApp(
    // 配置路由列表
    routes: {
      "/": (context) => const TabsPage(),
      "/noticeDetail": (context) => const NoticelDetail(),
      "/login": (context) => const LoginPage(),
      // "/profile": (context) => const ProfilePage(),
    },
    initialRoute: '/', // 第一个页面是哪个
    onGenerateRoute: (setting) {
      // 只要进入到这个池子里面 都是需要做token检查的 只要没有token 一律去登录页
      String token = tokenManager.getToken(); // 获取token
      if (token.isEmpty) {
        return MaterialPageRoute(
          builder: (context) => LoginPage(
            toName: setting.name,
          ),
        );
      }
      if (setting.name == "/profile") {
        // 有token放过去
        // 没有token去登录页
        // 要检查token
        return MaterialPageRoute(
          builder: (context) => const ProfilePage(),
        );
      }
      if (setting.name == "/houselist") {
        // 有token放过去
        // 没有token去登录页
        // 要检查token
        return MaterialPageRoute(
          builder: (context) => const HouseList(),
        );
      }
      if (setting.name == "/locationlist") {
        // 有token放过去
        // 没有token去登录页
        // 要检查token
        return MaterialPageRoute(
          builder: (context) => const LocationList(),
        );
      }
      if (setting.name == "/buildinglist") {
        // 有token放过去
        // 没有token去登录页
        // 要检查token
        return MaterialPageRoute(
          builder: (context) => const BuildingList(),
        );
      }
       if (setting.name == "/roomlist") {
        // 有token放过去
        // 没有token去登录页
        // 要检查token
        return MaterialPageRoute(
          builder: (context) => const RoomList(),
        );
      }


      // 兜底返回 当什么都匹配不了的时候 匹配404页面
      return MaterialPageRoute(
        builder: (context) => const NotFound(),
      );
    },
  );
}
